package com.facade;

import java.io.Serializable;
import java.util.List;

import com.dao.RegistroDAO;
import com.model.Registro;

public class RegistroFacade implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private RegistroDAO registroDAO = new RegistroDAO();

	public void criarRegistro(Registro registro) {
		registroDAO.beginTransaction();
		registroDAO.save(registro);
		registroDAO.commitAndCloseTransaction();
	}

	public void atualizarRegistro(Registro registro) {
		registroDAO.beginTransaction();
		Registro persistedRegistro = registroDAO.find(registro.getId());
		persistedRegistro.setNumero(registro.getNumero());
		persistedRegistro.setDataHora(registro.getDataHora());
		registroDAO.update(persistedRegistro);
		registroDAO.commitAndCloseTransaction();
	}

	public Registro findRegistro(int registroId) {
		registroDAO.beginTransaction();
		Registro registro = registroDAO.find(registroId);
		registroDAO.closeTransaction();
		return registro;
	}

	public List<Registro> listAll() {
		registroDAO.beginTransaction();
		List<Registro> result = registroDAO.findAll();
		registroDAO.closeTransaction();
		return result;
	}

	public void deletarRegistro(Registro registro) {
		registroDAO.beginTransaction();
		Registro persistedRegistro = registroDAO.findReferenceOnly(registro.getId());
		registroDAO.delete(persistedRegistro);
		registroDAO.commitAndCloseTransaction();
	}
}